// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.fir.uast.test;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("uast/uast-kotlin-fir/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/declaration")
public class FirUastDeclarationTestGenerated extends AbstractFirUastDeclarationTest {
    @java.lang.Override
    @org.jetbrains.annotations.NotNull
    public final KotlinPluginMode getPluginMode() {
        return KotlinPluginMode.K2;
    }

    private void runTest(String testDataFilePath) throws Exception {
        KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
    }

    @TestMetadata("annotationOnElvis.kt")
    public void testAnnotationOnElvis() throws Exception {
        runTest("testData/declaration/annotationOnElvis.kt");
    }

    @TestMetadata("build.gradle.kts")
    public void testBuild_gradle() throws Exception {
        runTest("testData/declaration/build.gradle.kts");
    }

    @TestMetadata("commentsOnDataClass.kt")
    public void testCommentsOnDataClass() throws Exception {
        runTest("testData/declaration/commentsOnDataClass.kt");
    }

    @TestMetadata("commentsOnProperties.kt")
    public void testCommentsOnProperties() throws Exception {
        runTest("testData/declaration/commentsOnProperties.kt");
    }

    @TestMetadata("companionInAnnotation.kt")
    public void testCompanionInAnnotation() throws Exception {
        runTest("testData/declaration/companionInAnnotation.kt");
    }

    @TestMetadata("constructorProperties.kt")
    public void testConstructorProperties() throws Exception {
        runTest("testData/declaration/constructorProperties.kt");
    }

    @TestMetadata("constructorWithJvmOverloads.kt")
    public void testConstructorWithJvmOverloads() throws Exception {
        runTest("testData/declaration/constructorWithJvmOverloads.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_accessors.kt")
    public void testDeprecatedHiddenProperty_accessors() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_accessors.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_constructor.kt")
    public void testDeprecatedHiddenProperty_constructor() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_constructor.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_getter.kt")
    public void testDeprecatedHiddenProperty_getter() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_getter.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_interface.kt")
    public void testDeprecatedHiddenProperty_interface() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_interface.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_noAccesor.kt")
    public void testDeprecatedHiddenProperty_noAccesor() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_noAccesor.kt");
    }

    @TestMetadata("deprecatedHiddenProperty_setter.kt")
    public void testDeprecatedHiddenProperty_setter() throws Exception {
        runTest("testData/declaration/deprecatedHiddenProperty_setter.kt");
    }

    @TestMetadata("doWhile.kt")
    public void testDoWhile() throws Exception {
        runTest("testData/declaration/doWhile.kt");
    }

    @TestMetadata("facade.kt")
    public void testFacade() throws Exception {
        runTest("testData/declaration/facade.kt");
    }

    @TestMetadata("if.kt")
    public void testIf() throws Exception {
        runTest("testData/declaration/if.kt");
    }

    @TestMetadata("implicitItOfLambdaOverEnumEntries.kt")
    public void testImplicitItOfLambdaOverEnumEntries() throws Exception {
        runTest("testData/declaration/implicitItOfLambdaOverEnumEntries.kt");
    }

    @TestMetadata("importOnDemand.kt")
    public void testImportOnDemand() throws Exception {
        runTest("testData/declaration/importOnDemand.kt");
    }

    @TestMetadata("init.kt")
    public void testInit() throws Exception {
        runTest("testData/declaration/init.kt");
    }

    @TestMetadata("interfaceCompanionObject.kt")
    public void testInterfaceCompanionObject() throws Exception {
        runTest("testData/declaration/interfaceCompanionObject.kt");
    }

    @TestMetadata("jvmOverloads.kt")
    public void testJvmOverloads() throws Exception {
        runTest("testData/declaration/jvmOverloads.kt");
    }

    @TestMetadata("labeledExpression.kt")
    public void testLabeledExpression() throws Exception {
        runTest("testData/declaration/labeledExpression.kt");
    }

    @TestMetadata("mangling.kt")
    public void testMangling() throws Exception {
        runTest("testData/declaration/mangling.kt");
    }

    @TestMetadata("missingNames.kt")
    public void testMissingNames() throws Exception {
        runTest("testData/declaration/missingNames.kt");
    }

    @TestMetadata("nullabilityOfTypeParameter.kt")
    public void testNullabilityOfTypeParameter() throws Exception {
        runTest("testData/declaration/nullabilityOfTypeParameter.kt");
    }

    @TestMetadata("objects.kt")
    public void testObjects() throws Exception {
        runTest("testData/declaration/objects.kt");
    }

    @TestMetadata("overriddenYetDeprecated.kt")
    public void testOverriddenYetDeprecated() throws Exception {
        runTest("testData/declaration/overriddenYetDeprecated.kt");
    }

    @TestMetadata("reflectKclassExperimental.kt")
    public void testReflectKclassExperimental() throws Exception {
        runTest("testData/declaration/reflectKclassExperimental.kt");
    }

    @TestMetadata("retention.kt")
    public void testRetention() throws Exception {
        runTest("testData/declaration/retention.kt");
    }

    @TestMetadata("returns.kt")
    public void testReturns() throws Exception {
        runTest("testData/declaration/returns.kt");
    }

    @TestMetadata("suspendReturnsResult.kt")
    public void testSuspendReturnsResult() throws Exception {
        runTest("testData/declaration/suspendReturnsResult.kt");
    }

    @TestMetadata("valueClass.kt")
    public void testValueClass() throws Exception {
        runTest("testData/declaration/valueClass.kt");
    }
}
